package com.cuit.jifver.weibo.service;

import java.util.Map;

import com.cuit.jifver.weibo.data.OAuth;
import com.cuit.jifver.weibo.data.Weibo;
import com.cuit.jifver.weibo.data.WeiboParameters;
import com.cuit.jifver.weibo.db.AppRecordData;
import com.cuit.jifver.weibo.net.SyncHttp;
import com.cuit.jifver.weibo.utils.ConfigUtil;
import com.cuit.jifver.weibo.utils.LogUtil;
import com.cuit.jifver.weibo.utils.TextUtil;

public class Service
{
	
	public static String getRuestToken()
	{
		WeiboParameters parameters = new WeiboParameters();
		parameters.add("oauth_callback", ConfigUtil.callBackUrl);
		String result = null;
		try
		{
			parameters = OAuth.getHttParameters("GET", ConfigUtil.getInstance().getRequest_token_url(), parameters, null, null);
			SyncHttp http = new SyncHttp();
			result = http.httpGet(ConfigUtil.getInstance().getRequest_token_url(), parameters);
		    //	LogUtil.i(Service.class, "result="+result);
			//LogUtil.i(Service.class, result.contains("oauth_token")+"");
			//LogUtil.i(Service.class, result.contains("oauth_token_secret")+"");
			
			 
			if (result.contains("oauth_token") && result.contains("oauth_token_secret"))
			{
			 Map<String, String> map = TextUtil.splitResponse(result);
			 result = map.get("oauth_token");
			 OAuth.getInstance().setOauth_token(result);
			 OAuth.getInstance().setOauth_token_secret(map.get("oauth_token_secret"));
			// LogUtil.i(Service.class, "oauth_token="+map.get("oauth_token"));
			// LogUtil.i(Service.class, "oauth_token_secret="+map.get("oauth_token_secret"));			 
			 
			}
			else 
			{
				result = null;
			}
			
			
		} catch (Throwable e)
		{
			e.printStackTrace();
		}
		 LogUtil.i(Service.class, "oauth_token="+result);
		return result;
	}
	
	public static Map getAuthorizationToken(String url)
	{
		
		return null;

	}
	
	public static String getAccessToken(String verifier)
	{
		String result = null;
		WeiboParameters parameters = new WeiboParameters();
		OAuth oAuth = OAuth.getInstance();
		try
		{
			parameters.add("oauth_verifier", verifier);
			parameters = OAuth.getHttParameters("GET", ConfigUtil.getInstance().getAccess_token_url(), parameters, oAuth.getOauth_token(), oAuth.getOauth_token_secret());
		}
		catch (Throwable e)
		{
			e.printStackTrace();
		}
		
		SyncHttp http = new SyncHttp();
		try
		{
			result = http.httpGet(ConfigUtil.getInstance().getAccess_token_url(), parameters);
			LogUtil.i(Service.class, "result="+result);
			if (result.contains("oauth_token") && result.contains("oauth_token_secret"))
			{
			 Map<String, String> map = TextUtil.splitResponse(result);
			 result = map.get("oauth_token");
			 OAuth.getInstance().setOauth_token(result);
			 OAuth.getInstance().setOauth_token_secret(map.get("oauth_token_secret"));
			 Weibo.getInstance().setAccessToken(result);
			 Weibo.getInstance().setAccessSecret(map.get("oauth_token_secret"));
			 AppRecordData.setAccessToken(result, map.get("oauth_token_secret"));
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		return result;
	}
	
	public static void getSinaHomeTimeline()
	{
		Weibo.getInstance().getHomeTimeLine(null, null);
	}

}
